<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Automat (Informatik)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Automat_(Informatik)"> <link href="./_mw_/ext.math.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Automat_Informatik rootpage-Automat_Informatik skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Automat (Informatik)</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr"><p>Ein <b>Automat</b> oder eine <b>abstrakte Maschine</b> ist in der <a href="Informatik" title="Informatik">Informatik</a>, speziell in der <a href="Automatentheorie" title="Automatentheorie">Automatentheorie</a>, das <a href="Modell" title="Modell">Modell</a> eines <a href="Digitalsignal" title="Digitalsignal">digitalen</a>, <a href="Diskretheit" class="mw-redirect" title="Diskretheit">zeitdiskreten</a> <a href="Computer" title="Computer">Rechners</a>. Ob es möglich oder sinnvoll ist, eine solche Maschine tatsächlich zu bauen, ist dabei zunächst unerheblich. Die Vereinfachung der Fähigkeiten erlaubt es, das Verhalten eines Automaten leichter zu verstehen und zu vergleichen.
</p><p>Der Automatenbegriff spielt eine zentrale Rolle in der <a href="Theoretische_Informatik" title="Theoretische Informatik">theoretischen Informatik</a>. In der <a href="Berechenbarkeitstheorie" title="Berechenbarkeitstheorie">Berechenbarkeitstheorie</a> und in der <a href="Komplexit%C3%A4tstheorie" title="Komplexitätstheorie">Komplexitätstheorie</a> etwa stellen die Automaten den zugrunde liegenden Berechnungsbegriff. Automaten spielen auch in der <a href="Praktische_Informatik" title="Praktische Informatik">praktischen Informatik</a> eine entscheidende Rolle, zum Beispiel im <a href="Compilerbau" title="Compilerbau">Compilerbau</a>.
In der <a href="Digitaltechnik" title="Digitaltechnik">Digitaltechnik</a> werden Automaten zur <a href="Steuerungstechnik" title="Steuerungstechnik">Steuerung</a> in <i>digitalen</i> und <i><a href="Hybrid" title="Hybrid">hybriden</a> Systemen</i> eingesetzt. Solche Steuerungsautomaten haben Anwendungen unter anderem in der <a href="Rechnerarchitektur" title="Rechnerarchitektur">Rechnerarchitektur</a>, in <a href="Rechnernetz" title="Rechnernetz">Rechnernetzen</a> und in <a href="Reaktives_System" class="mw-redirect" title="Reaktives System">Reaktiven Systemen</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Verhalten_eines_Automaten">Verhalten eines Automaten</h2></div>
<p>Das grundsätzliche Verhalten eines Automaten ist immer gleich: Dem Automaten wird von außen eine Eingabe als Folge von <a href="Zeichen" title="Zeichen">Zeichen</a> vorgelegt. Der Automat befindet sich in einem bestimmten Zustand. Jedes Mal, wenn ein Eingabezeichen eintrifft, kann sich abhängig vom Eingabezeichen und dem gegenwärtigen Zustand ein neuer Zustand, der <i>Folgezustand</i>, einstellen (<i>Zustandsübergang</i> oder <i>Transition</i>). Man kann die Menge der möglichen Zustandsübergänge, die das Verhalten des Automaten definiert, als das <a href="Computerprogramm" title="Computerprogramm">Programm</a> des Automaten verstehen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Deterministische_und_nichtdeterministische_Automaten">Deterministische und nichtdeterministische Automaten</h2></div>
<p>Wenn der Folgezustand durch den gegenwärtigen Zustand und das Eingabezeichen immer <a href="Eindeutig" class="mw-redirect" title="Eindeutig">eindeutig</a> gegeben ist, dann spricht man von einem <a href="Determinismus_(Algorithmus)" title="Determinismus (Algorithmus)">deterministischen</a> Automaten. Allgemein aber kann man auch einen Spielraum (<a href="Freiheitsgrad" title="Freiheitsgrad">Freiheitsgrade</a>) für die Zustandsübergänge zulassen. Der Automat darf dann auf dasselbe Paar von Zustand und Eingabezeichen unter mehreren möglichen Kandidaten einen Folgezustand willkürlich wählen. Dann spricht man von einem <a href="Nichtdeterminismus" title="Nichtdeterminismus">nichtdeterministischen</a> Automaten. Der Nichtdeterminismus ist dann willkommen, wenn man das Verhalten der Umgebung modellieren möchte, das man nicht völlig genau kennt (<i>don’t know</i>), oder wenn man Möglichkeiten für verschiedene Implementierungen offenlassen möchte (<i>don’t care</i>).
</p><p>Meist lässt man zusätzlich zu nichtdeterministischen Zustandsübergängen noch spontane Zustandsübergänge zu, das sind solche, die ohne Eingabezeichen stattfinden (ε-Übergänge).
</p>
<div class="mw-heading mw-heading2"><h2 id="Automaten_mit_und_ohne_Ausgabe">Automaten mit und ohne Ausgabe</h2></div>
<p>Automaten, die nur ihre Zustandsübergänge abwickeln, nennt man auch <a href="Transitionssystem" title="Transitionssystem">Transitionssysteme</a>.
</p><p>Daneben gibt es auch Automaten, die eine gewisse Teilmenge ihrer Zustände als <i>Endzustände</i> auszeichnen. Wenn ein Eingabewort den Automaten von einem ausgezeichneten Zustand, dem <i>Startzustand</i>, in einen der Endzustände führt, dann sagt man, der Automat <i>akzeptiert</i> das Eingabewort. Einen solchen Automaten nennt man deswegen einen <a href="Akzeptor_(Informatik)" title="Akzeptor (Informatik)">Akzeptor</a>. Ein Akzeptor eignet sich dazu, eine <a href="Formale_Sprache" title="Formale Sprache">formale Sprache</a> zu definieren, nämlich die Menge aller endlichen Wörter, die der Automat akzeptiert.
</p><p>Schließlich gibt es noch Automaten mit Ausgabe, sogenannte <a href="Transduktor_(Informatik)" title="Transduktor (Informatik)">Transduktoren</a>. Sie ordnen entweder jedem Zustand (<a href="Moore-Automat" title="Moore-Automat">Moore-Automaten</a>) oder jedem Paar aus Zustand und Eingabezeichen (<a href="Mealy-Automat" title="Mealy-Automat">Mealy-Automaten</a>) ein Ausgabezeichen zu. Auf diese Weise bildet ein Automat eine Verarbeitungseinheit.
</p>
<div class="mw-heading mw-heading2"><h2 id="Klassen_von_Automaten">Klassen von Automaten</h2></div>
<p>Nach den Mitteln, die ein Automat zur Verfügung hat, kann man die Automaten in Klassen einteilen.
Statt Klasse von Automaten sagt man auch <b>Automatenmodell</b>.
Den Akzeptoren der jeweiligen Klasse kann man ihre akzeptierte Sprache zuordnen. Es stellt sich heraus, dass jeder Klasse von Automaten auf diese Weise eine Klasse Formaler Sprachen entspricht.
Bekannte Klassen von Automaten sind (jeweils mit Abkürzungen für die deterministische und die nichtdeterministische Variante):
</p>
<dl><dt><a href="Turingmaschine" title="Turingmaschine">Turingmaschinen</a> (DTM/NTM)</dt>
<dd>Eine Turingmaschine hat neben dem inneren Zustand auch Zugriff auf ein unendliches Band, auf das ein beweglicher Schreib-/Lesekopf Zeichen schreiben und später lesen kann. Beide Klassen akzeptieren die Typ-0-Sprachen (<a href="Rekursiv_aufz%C3%A4hlbare_Sprache" title="Rekursiv aufzählbare Sprache">Rekursiv aufzählbare Sprache</a>). Durch die Turingmaschine wird außerdem der Begriff der <a href="Berechenbarkeit" title="Berechenbarkeit">Berechenbarkeit</a> definiert. Siehe <a href="Churchsche_These" class="mw-redirect" title="Churchsche These">Churchsche These</a>.</dd>
<dt><a href="Linear_beschr%C3%A4nkter_Automat" class="mw-redirect" title="Linear beschränkter Automat">Linear beschränkte Automaten</a> (DLBA/LBA)</dt>
<dd>Die linear beschränkten Automaten unterscheiden sich von den Turingmaschinen nur dadurch, dass der zugängliche Teil des Bandes durch die Größe der Eingabe beschränkt ist. Nichtdeterministische LBA akzeptieren genau die Typ-1-Sprachen (<a href="Kontextsensitive_Sprache" title="Kontextsensitive Sprache">kontextsensitive Sprachen</a>); die Frage, ob das auch auf deterministische LBA zutrifft, ist ein noch offenes Problem.</dd>
<dt><a href="Kellerautomat" title="Kellerautomat">Kellerautomaten</a> (DPDA/PDA)</dt>
<dd>Ein Kellerautomat hat neben einem von endlich vielen inneren Zuständen auch Zugriff zum Keller, einem <a href="Stapelspeicher" title="Stapelspeicher">Stapel</a>, auf dem Zeichen zur späteren Verarbeitung zwischengespeichert werden können. Die PDAs akzeptieren die Typ-2-Sprachen (<a href="Kontextfreie_Sprache" title="Kontextfreie Sprache">Kontextfreie Sprachen</a>). Die DPDAs akzeptieren die <a href="Deterministisch_kontextfreie_Sprache" title="Deterministisch kontextfreie Sprache">deterministisch kontextfreien Sprachen</a>.</dd>
<dt><a href="Endlicher_Automat" title="Endlicher Automat">Endliche Automaten</a> (DFA/NFA)</dt>
<dd>Ein endlicher Automat kennt nur endlich viele Zustände. Beide Klassen akzeptieren die Typ-3-Sprachen (<a href="Regul%C3%A4re_Sprache" title="Reguläre Sprache">Reguläre Sprachen</a>).</dd></dl>
<p>Die Menge der Automaten stehen wie folgt mit den Mengen der <a href="Sprachklasse" title="Sprachklasse">Sprachklassen</a> und <a href="Formale_Grammatik" title="Formale Grammatik">Grammatiken</a> in Beziehung (siehe auch <a href="Chomsky-Hierarchie" title="Chomsky-Hierarchie">Chomsky-Hierarchie</a>):
</p>
<table class="wikitable" style="text-align:center">
<tbody><tr>
<th>Chomsky-Hierarchie
</th>
<th>Sprachklasse
</th>
<td>
</td>
<th>nicht deterministischer Automat
</th>
<td>
</td>
<th>deterministischer Automat
</th></tr>
<tr>
<td>Typ-0-Grammatik
</td>
<td><a href="Rekursiv_aufz%C3%A4hlbare_Sprache" title="Rekursiv aufzählbare Sprache"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathcal {\color {blue}RE}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mstyle mathcolor="blue">
<mi class="MJX-tex-caligraphic" mathvariant="script">R</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">E</mi>
</mstyle>
</mrow>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\mathcal {\color {blue}RE}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/8fae6ef81bf6c22f79136d53e7ab455fa3827373.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:3.282ex; height:2.176ex;" alt="{\displaystyle {\mathcal {\color {blue}RE}}}" loading="lazy"></span></a>
</td>
<td style="font-size:larger"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle =}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>=</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle =}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/505a4ceef454c69dffd23792c84b90f488543743.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: 0.307ex; margin-bottom: -0.478ex; width:1.808ex; height:1.343ex;" alt="{\displaystyle =}" loading="lazy"></span>
</td>
<td><a href="Nichtdeterministische_Turingmaschine" title="Nichtdeterministische Turingmaschine"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathcal {\color {blue}NTM}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mstyle mathcolor="#0000ff">
<mi class="MJX-tex-caligraphic" mathvariant="script">N</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">T</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">M</mi>
</mstyle>
</mrow>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\mathcal {\color {blue}NTM}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/cd6e6b454ed90512f9a47b01a333b580ce1463fc.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; margin-left: -0.062ex; width:7.063ex; height:2.509ex;" alt="{\displaystyle {\mathcal {\color {blue}NTM}}}" loading="lazy"></span></a>
</td>
<td style="font-size:larger"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle =}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>=</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle =}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/505a4ceef454c69dffd23792c84b90f488543743.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: 0.307ex; margin-bottom: -0.478ex; width:1.808ex; height:1.343ex;" alt="{\displaystyle =}" loading="lazy"></span>
</td>
<td><a href="Turingmaschine" title="Turingmaschine"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathcal {\color {blue}DTM}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mstyle mathcolor="blue">
<mi class="MJX-tex-caligraphic" mathvariant="script">D</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">T</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">M</mi>
</mstyle>
</mrow>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\mathcal {\color {blue}DTM}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/6f1077ed61f03c30117c5d3ed2a2ec6a0b6b8f76.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:6.518ex; height:2.343ex;" alt="{\displaystyle {\mathcal {\color {blue}DTM}}}" loading="lazy"></span></a>
</td></tr>
<tr>
<td>Typ-1-Grammatik
</td>
<td><a href="Kontextsensitive_Sprache" title="Kontextsensitive Sprache"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathcal {\color {blue}CS}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mstyle mathcolor="blue">
<mi class="MJX-tex-caligraphic" mathvariant="script">C</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">S</mi>
</mstyle>
</mrow>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\mathcal {\color {blue}CS}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/81e40db9c769c07352507ad4b652d94546c3cd5a.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:2.731ex; height:2.176ex;" alt="{\displaystyle {\mathcal {\color {blue}CS}}}" loading="lazy"></span></a>
</td>
<td style="font-size:larger"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle =}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>=</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle =}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/505a4ceef454c69dffd23792c84b90f488543743.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: 0.307ex; margin-bottom: -0.478ex; width:1.808ex; height:1.343ex;" alt="{\displaystyle =}" loading="lazy"></span>
</td>
<td><a href="Linear_beschr%C3%A4nkter_Automat" class="mw-redirect" title="Linear beschränkter Automat"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathcal {\color {blue}LBA}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mstyle mathcolor="blue">
<mi class="MJX-tex-caligraphic" mathvariant="script">L</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">B</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">A</mi>
</mstyle>
</mrow>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\mathcal {\color {blue}LBA}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/2613c4982b5a290d9873a9174721b66feb1d9bb5.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:5.05ex; height:2.343ex;" alt="{\displaystyle {\mathcal {\color {blue}LBA}}}" loading="lazy"></span></a>
</td>
<td><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \supseteq }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>⊇<!-- ⊇ --></mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \supseteq }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/0c8a31abf11074afa03a75eba80bfce6b98020e4.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.505ex; width:1.808ex; height:2.176ex;" alt="{\displaystyle \supseteq }" loading="lazy"></span>
</td>
<td><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathcal {DLBA}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-caligraphic" mathvariant="script">D</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">L</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">B</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">A</mi>
</mrow>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\mathcal {DLBA}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/8d202d983d1529ae2b49d88a35fd24ca19da1e3c.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:6.842ex; height:2.343ex;" alt="{\displaystyle {\mathcal {DLBA}}}" loading="lazy"></span>
</td></tr>
<tr>
<td>Typ-2-Grammatik
</td>
<td><a href="Kontextfreie_Sprache" title="Kontextfreie Sprache"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathcal {\color {blue}CF}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mstyle mathcolor="blue">
<mi class="MJX-tex-caligraphic" mathvariant="script">C</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">F</mi>
</mstyle>
</mrow>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\mathcal {\color {blue}CF}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/b548726893a0a36598893bad8e3ee94e52fe692e.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:3.166ex; height:2.176ex;" alt="{\displaystyle {\mathcal {\color {blue}CF}}}" loading="lazy"></span></a>
</td>
<td style="font-size:larger"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle =}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>=</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle =}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/505a4ceef454c69dffd23792c84b90f488543743.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: 0.307ex; margin-bottom: -0.478ex; width:1.808ex; height:1.343ex;" alt="{\displaystyle =}" loading="lazy"></span>
</td>
<td><a href="Kellerautomat" title="Kellerautomat"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathcal {\color {blue}PDA}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mstyle mathcolor="blue">
<mi class="MJX-tex-caligraphic" mathvariant="script">P</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">D</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">A</mi>
</mstyle>
</mrow>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\mathcal {\color {blue}PDA}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/9e2150dd7eb0f89d902126ac86ab6017ae7e8786.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:5.399ex; height:2.343ex;" alt="{\displaystyle {\mathcal {\color {blue}PDA}}}" loading="lazy"></span></a>
</td>
<td><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \varsupsetneq }">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo class="MJX-variant">⊋<!-- ⊋ --></mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \varsupsetneq }</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/ed7d70c276d8057ebb602db04bed3614dcbb6068.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:1.808ex; height:2.509ex;" alt="{\displaystyle \varsupsetneq }" loading="lazy"></span>
</td>
<td><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathcal {DPDA}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi class="MJX-tex-caligraphic" mathvariant="script">D</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">P</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">D</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">A</mi>
</mrow>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\mathcal {DPDA}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/b2fe8e76d56d5d1da378faa5d1c181a4c72cf3a2.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:7.191ex; height:2.343ex;" alt="{\displaystyle {\mathcal {DPDA}}}" loading="lazy"></span>
</td></tr>
<tr>
<td>Typ-3-Grammatik
</td>
<td><a href="Regul%C3%A4re_Sprache" title="Reguläre Sprache"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathcal {\color {blue}REG}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mstyle mathcolor="blue">
<mi class="MJX-tex-caligraphic" mathvariant="script">R</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">E</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">G</mi>
</mstyle>
</mrow>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\mathcal {\color {blue}REG}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/ab7b90706a7ca59be41a345470edd442ef9f44b1.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.505ex; width:4.674ex; height:2.343ex;" alt="{\displaystyle {\mathcal {\color {blue}REG}}}" loading="lazy"></span></a>
</td>
<td style="font-size:larger"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle =}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>=</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle =}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/505a4ceef454c69dffd23792c84b90f488543743.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: 0.307ex; margin-bottom: -0.478ex; width:1.808ex; height:1.343ex;" alt="{\displaystyle =}" loading="lazy"></span>
</td>
<td><a href="Nichtdeterministischer_endlicher_Automat" title="Nichtdeterministischer endlicher Automat"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathcal {\color {blue}NFA}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mstyle mathcolor="#0000ff">
<mi class="MJX-tex-caligraphic" mathvariant="script">N</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">F</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">A</mi>
</mstyle>
</mrow>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\mathcal {\color {blue}NFA}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/1601178218b92253bb7b2bf203f5489ac68e7e57.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; margin-left: -0.062ex; width:6.166ex; height:2.509ex;" alt="{\displaystyle {\mathcal {\color {blue}NFA}}}" loading="lazy"></span></a>
</td>
<td style="font-size:larger"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle =}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mo>=</mo>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle =}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/505a4ceef454c69dffd23792c84b90f488543743.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: 0.307ex; margin-bottom: -0.478ex; width:1.808ex; height:1.343ex;" alt="{\displaystyle =}" loading="lazy"></span>
</td>
<td><a href="Deterministischer_endlicher_Automat" title="Deterministischer endlicher Automat"><span class="mwe-math-element mwe-math-element-inline"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle {\mathcal {\color {blue}DFA}}}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mstyle mathcolor="blue">
<mi class="MJX-tex-caligraphic" mathvariant="script">D</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">F</mi>
<mi class="MJX-tex-caligraphic" mathvariant="script">A</mi>
</mstyle>
</mrow>
</mrow>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle {\mathcal {\color {blue}DFA}}}</annotation>
</semantics>
</math></span><img src="./_assets_/eb734a37dd21ce173a46342d1cc64c92/8bbe3d2d69801895ebc1b1897db4bcfe14ea1093.svg" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:5.622ex; height:2.343ex;" alt="{\displaystyle {\mathcal {\color {blue}DFA}}}" loading="lazy"></span></a>
</td></tr></tbody></table>
<p>Ob LBA ⊃ DLBA echt gilt, oder ob die DLBAs die gleiche Sprachklasse akzeptieren wie die LBAs, ist noch nicht bekannt.
</p><p>Weitere Klassen von Automaten sind:
</p>
<dl><dt><a href="Zweikellerautomat" title="Zweikellerautomat">Zweikellerautomat</a></dt>
<dd>Beim Zweikellerautomat hat man im Unterschied zum Kellerautomaten zwei Keller zur Verfügung. Durch das Kellerpaar kann ein Turingband simuliert werden. Die Zweikellerautomaten sind also den Turingmaschinen gleichwertig. Syntaktische Beschränkungen dieses Modells führen zur Charakterisierung der Typ-1- und Typ-2-Sprachen.</dd>
<dt><a href="Registermaschine" title="Registermaschine">Registermaschinen</a></dt>
<dd>Eine Registermaschine hat zusätzlich zum inneren Zustand eine Folge von Registern, das sind Speicherzellen für natürliche Zahlen, auf denen elementare Rechenoperationen ausgeführt werden können. Registermaschinen sind genau so mächtig wie Turingmaschinen.</dd></dl>
<div class="mw-heading mw-heading2"><h2 id="Erweiterte_Automatenbegriffe">Erweiterte Automatenbegriffe</h2></div>
<p>Nichtdeterministische Automaten dürfen nicht verwechselt werden mit Stochastischen Automaten. Letztere ordnen den Zustandsübergängen Wahrscheinlichkeiten zu, während erstere nur über Möglichkeiten reden. Für Wahrscheinlichkeitsaussagen sind nichtdeterministische Automaten daher nicht geeignet.
</p><p>Daneben gibt es weitere Automatentypen, die sich nicht am sequentiellen Einlesen einer Eingabe orientieren. Einige der bekannteren Automaten sind:
</p>
<ul><li>Varianten der <a href="Turingmaschine" title="Turingmaschine">Turingmaschine</a> mit zweidimensionalem Band oder mit mehreren Bändern</li>
<li><a href="Zellul%C3%A4rer_Automat" title="Zellulärer Automat">Zelluläre Automaten</a></li>
<li><a href="%CE%A9-Automat" title="Ω-Automat">ω-Automaten</a> für unendliche Eingaben</li>
<li><a href="K%C3%BCnstliches_neuronales_Netz" title="Künstliches neuronales Netz">Neuronale Netze</a></li>
<li><a href="Petri-Netz" title="Petri-Netz">Petri-Netze</a></li>
<li><a href="Algebraische_Rechenmodelle" title="Algebraische Rechenmodelle">Algebraische Rechenmodelle</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Anwendungen">Anwendungen</h2></div>
<p>Von praktischer Relevanz für die <a href="Programmierung" title="Programmierung">Programmierung</a> sind vor allem Endliche Automaten und Kellerautomaten: sie bieten eine einfache Struktur, mit der sich viele komplexe Probleme übersichtlich lösen lassen. Im Compilerbau werden sie beispielsweise zur <a href="Implementierung" title="Implementierung">Implementierung</a> von <a href="Parser" title="Parser">Parsern</a> eingesetzt, die Umsetzungen von <a href="Netzwerkprotokoll" title="Netzwerkprotokoll">Netzwerkprotokollen</a> benutzen häufig einen endlichen Automaten, um ihren aktuellen Zustand zu <a href="Modellierung" class="mw-redirect" title="Modellierung">modellieren</a>. Auch die Navigationsmöglichkeiten in einem <a href="Assistent_(Datenverarbeitung)" title="Assistent (Datenverarbeitung)">Wizard</a> lassen sich sehr gut als endlicher Automat ausdrücken, und das <a href="Workflow-Management" title="Workflow-Management">Workflow-Management</a> benutzt diese Konzepte zur Modellierung von Arbeitsabläufen.
</p><p>Auch bei der Realisierung sequenzieller <a href="Hardware" title="Hardware">Hardware</a> wird das Modell des Endlichen Automaten genutzt, dort meist als <a href="Finite_State_Machine" class="mw-redirect" title="Finite State Machine">Finite State Machine</a> (FSM) bezeichnet.
</p><p><br>
</p></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2024-01-25" href="https://de.wikipedia.org/wiki/?title=Automat_(Informatik)&oldid=241542503">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>